/* * Copyright (C) 2021 Huawei Device Co., Ltd.
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.zhouyou.http.demo;

import com.zhouyou.http.model.utils.EventHelper;
import ohos.aafwk.ability.delegation.AbilityDelegatorRegistry;
import ohos.aafwk.ability.delegation.IAbilityDelegator;
import ohos.agp.components.Button;
import ohos.agp.utils.TextTool;
import org.junit.After;
import org.junit.Test;

import static org.junit.Assert.*;

public class SceneAbilityTest {
    private static IAbilityDelegator sAbilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator();
    long longTime = 6000;
    long shortTime = 2000;
    @After
    public void tearDown() throws Exception {
        EventHelper.clearAbilities();
        Thread.sleep(2000);
    }

    @Test
    public void onDeferredRequest() {
        SceneAbility sceneAbility = EventHelper.startAbility(SceneAbility.class);
        sleep(longTime);
        System.out.println("SceneAbility==="+(sceneAbility==null));
        Button button = (Button) sceneAbility.findComponentById(ResourceTable.Id_btn_deferred_request);
        sleep(shortTime);
        EventHelper.triggerClickEvent(sceneAbility, button);
        sleep(longTime);
//        long timeInterval = sceneAbility.getTimeInterval();
        String status=sceneAbility.getStatus();
        assertTrue("The request start time to end time is 5 seconds !!!!", !status.isEmpty());
        sAbilityDelegator.stopAbility(sceneAbility);
    }

    @Test
    public void onNestedRequest() {
        SceneAbility sceneAbility = EventHelper.startAbility(SceneAbility.class);
        sleep(longTime);
        Button button = (Button) sceneAbility.findComponentById(ResourceTable.Id_btn_nested_request);
        sleep(shortTime);
        EventHelper.triggerClickEvent(sceneAbility, button);
        sleep(longTime);
        String status=sceneAbility.getStatus();
        System.err.println("status=="+status);
        assertTrue("status is not empty !!!!"+status, !TextTool.isNullOrEmpty(status));
        sAbilityDelegator.stopAbility(sceneAbility);

    }



    private void sleep(long time) {
        try {
            Thread.sleep(time);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}